home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
TACHBAR.BAS
< prev
next >
Wrap
BASIC Source File
|
1992-02-18
|
2KB
|
70 lines
'----------------------------------------------------------
' PROGRAM: TACHBAR.BAS PROGRAMMER: A. KELLETT
' DATE-WRITTEN: 02/18/92
' USING POWER BASIC V2.10A
'
' THIS PROGRAM DISPLAYS A TACHOMETER-STYLE BAR TO TRACK
' PROGRESS AS SOMETHING HAPPENS (COPIES, SORTS, CALCS, ETC)
' VERSION: 0.00 LAST UPDATED: 00/00/00
'----------------------------------------------------------
CLS
LOCATE 1,25:PRINT "PROGRESSIVE TACHOMETER BAR - EXAMPLE PROGRAM"
LOCATE 5,5:PRINT "THE COMPUTER WILL COUNT TO A NUMBER YOU SPECIFY"
LOCATE 6,5:PRINT "BETWEEN 5000 AND 50000, ENTER 0 TO QUIT."
LOCATE 7,5:INPUT "ENTER NUMBER [5000-50000] :";NUMBER&
IF NUMBER& = 0 THEN
LOCATE 24,1
END
END IF
IF NUMBER& < 5000 OR NUMBER& > 50000 THEN
LOCATE 24,1:PRINT "NUMBER OUTSIDE VALID RANGE, PROGRAM ABORTING."
END
END IF
'** FOLLOWING LINES ARE INITIALIZATION **
BAR.LENGTH% = 60 :REM** ACTUAL LENGTH IS HALF OF THIS **
BAR.STEP& = NUMBER& \ (BAR.LENGTH% * 2):BAR.NEXT& = BAR.STEP&:FULL% = 0
FULL$ = "█":HALF$ = "▌":REM CHR$(219) AND CHR$(221)
XLINE% = 12:XCOL% = 2:FULL% = 0:
'** DISPLAY LEFT/RIGHT ARROW DELIMITERS **
LOCATE XLINE%, 1:PRINT CHR$(16):REM LEFT ARROW
LOCATE XLINE%, BAR.LENGTH% + 2:PRINT CHR$(17):REM RIGHT ARROW
'** FOR THE DEMO, WE'LL USING A PROGRESS BOX FOR THE NUMBERS **
LOCATE 9,1:PRINT "╔══════════╦═════════╗"
LOCATE 10,1:PRINT "║ XXX,XXX ║ XXX % ║"
LOCATE 11,1:PRINT "╚══════════╩═════════╝"
FOR I& = 1 TO NUMBER&
LOCATE 10,3:PRINT USING "###,###";I&
GOSUB TACHBAR1
NEXT I&
LOCATE 23,1
END
'
'
'----------------------------------------------------------
TACHBAR1:
IF I& => BAR.NEXT& THEN
BAR.NEXT& = BAR.NEXT& + BAR.STEP&
BAR.PCT% = 100 * (I& / NUMBER&)
'** IF YOU DON'T WANT HALF-CHARACTERS USED IN THE BAR, DELETE **
'** THE LINES WITH THE "ELSE", TAKE OUT THE "IF FULL%..." **
'** AND YOU'LL HAVE ONLY 1 CHARACTER SEGMENTS TO STEP. **
IF FULL% = 1 THEN
FULL% = 0
CHAR$ = FULL$
LOCATE XLINE%, XCOL%:PRINT CHAR$;
XCOL% = XCOL% + 1
ELSE
CHAR$ = HALF$
FULL% = 1
LOCATE XLINE%,XCOL%:PRINT CHAR$;
END IF
'** THIS NEXT LINE IS OPTIONAL, OR YOU CAN DISPLAY IT ELSEWHERE **
LOCATE 10, 15:PRINT USING "### %";BAR.PCT%
END IF
RETURN